1. Overview
Welcome to the Design Hub API, developed by Basesite!
This API provides developers a programmatic interface to access and interact with the services and data offered by the FCE Suite of applications. Whether using PowerBI, Excel, or other reporting tools, our API provides seamless integration to fetch, filter, and manipulate data to meet your specific reporting needs. By offering detailed and structured data, the API enables you to generate insightful reports that can drive informed decision-making and streamline business processes.
2. Base URL
For users within Intel, the APIs are available in two environments to support various stages: UAT and PRODUCTION. Each environment has its base URL, allowing you to test and validate your reports in controlled settings.
2.1. Client Credentials
Use the details below to connect to the Design Hub API in all environments
Please send an email to the LSPx Support team, providing details below:
- Your role
- Your Company
- Why you need the API
3. Choosing the Right Environment
The UAT environments have a “-uat” in the API URL. Remove this to use the production URL.
- Production Phase: use the PRODUCTION environment to ensure you work with live, accurate data.
- Pre-Deployment Phase: use the UAT environment for thorough testing and validation, focusing on user acceptance.
4. API URL per Feature
4.1. DAC Endpoints
Refer to the User Guide for how to create, submit and complete DACs in the LSPx application.
GET all DAC Data [All Companies and All Sites]
New APIs for the DAC that are now available in UAT and Production, containing all the DACs from FCEConnect. You can use the following URL to GET the DAC data for all companies and sites:
- PRODUCTION api_url = "https://fcelspx.intel.com/designhub/api/FormsAPI/GetDACDataByCompanyAndSite?companyName=ssoe&siteName=ireland”
- UAT api_url = "https://fcelspx-uat.intel.com/designhub/api/FormsAPI/GetDACDataByCompanyAndSite?companyName=ssoe&siteName=ireland"
In the URL replace the company and site name to suit your needs. Using the example above, change “exyte” to “Jacobs”. Change "Ireland" to "Arizona".
By default, this endpoint retrieves all DACs if no filters are provided, which may take some time. However, the API supports the following optional parameters:
- SiteName: GETs all records for a specific site.
- CompanyName: GETs all records for a specific Company.
If siteName parameter is used, all DACs data for that site will be retrived. If you don't want to use SiteName parameter, remove &siteName=ireland from the URL.
If CompanyName parameter is used, all DACs data for that company will be retrived. If you don't want to use Company Name parameter, remove companyName=exyte& from the URL.
If both SiteName and CompanyName parameters are used, all DACs data for that company and for that specific site will be retrived. In the URL replace the companyName and siteName to suit your needs.
If you don't want to use SiteName and CompanyName parameters, remove companyName=exyte&siteName=ireland from the URL.
4.2. DCR Endpoints
GET all DCR Data [All Sites]
To get DCR Endpoint details, please send an email to the LSPx Support team, providing details below:
- Your role
- Your Company
- Why you need the DCR Endpoint API
4.3. ROD Endpoints
Refer to the User Guide for how to create, submit and complete RODs in the LSPx application.
All RODs for all Sites and Companies
APIs for the RODs are available in UAT and Production, containing all the RODs in LSPx. You can use the following URL to GET ROD data for all companies on all sites:
- PRODUCTION api_url = "https://fcelspx.intel.com/designhub/api/Issue/GetIssueRodList?siteName=Ireland&skip=10&take=100&companyName=DPS”
- UAT api_url = "https://fcelspx-uat.intel.com/designhub/api/Issue/GetIssueRodList?siteName=Ireland&skip=10&take=100&companyName=DPS”
By default, this endpoint retrieves all RODs if no filters or pagination settings are applied, which may take some time. If you leave the options below blank, the request will return all RODs from all sites. However, this may result in a longer processing time:
- siteName: This parameter represents the name of a specific site you want to get the RODs for. For example, you can enter Ireland. You can only get details of one site at a time. Leave blank to retrieve records for all sites.
- skip: Tells the API how many records to skip before starting to return results. It is useful for navigating through pages of data. For example, if you have already seen the first 10 records, setting skip=10 will move to the next set of records. Leave blank to retrieve records for all sites.
- take: Determines how many records should be returned in the response. For example, take=100 will return up to 100 records. Leave blank to return all records.
- companyName: Refers to the name of a company you want to see their RODs. It is useful for filtering data related to a specific companies in LSPx. For example, you can enter DPS. You can only get details of one company at a time. Leave blank to get all companies.
- excludeAttachments: You can exclude attachments from the results by choosing "false". Choose "true" if you want to include this data in your result.*
- excludeComments: You can exclude comments from the results by choosing "false". Choose "true" if you want to include this data in your result.*
- startDate: If provided, results will return RODs created on or after this date. When used with endDate, it will return result of RODs between the two dates. Use this Format: YYYY-MM-DD (e.g., 2024-02-14)*
- endDate: If provided, results will return RODs created on or after this date. When used with startDate, it will return result of RODs between the two dates. Use this Format: YYYY-MM-DD (e.g., 2025-02-14)*
If "Skip" or "Take" parameters are used, the data will be paginated accordingly. This divides large sets of data into smaller, manageable chunks (or pages) instead of returning everything at once. This improves performance, reduces server load, and speeds up response times. Remove &skip=10&take=100 from the URL if you want records for all sites.
If you don't want to use siteName parameter, remove siteName=Ireland& from the URL. Refer the below table for the site names you can use.
If companyName parameter is used, all RODs data for that company will be retrived. Remove &companyName=DPS from the URL if you want records for all companies.
If both siteID and companyName parameters are used, all RODs data for that company on the site will be retrived. In the URL replace the company and siteId to suit your needs. Using the example above, you can change “DPS” to “Jacobs”. You can change "Ireland" to your any of the sites listed in the table given below e.g. "Arizona".
If you don't want to use any parameters, remove ?siteName=Ireland&skip=10&take=100&companyName=DPS from the URL.
Additional Information
- HTML tags for Problem Statement Proposed Solution Solution are not included in the retrieved data.
- Turnaround Times are presented in hours and days.
- The data will display the names and email addresses of AC, PM, and Reporter.
- You can filter the RODs by date.
Site Id | Site Name |
---|---|
1 | Virtual Factory |
2 | Ireland |
4 | Arizona |
5 | Ronler Acres |
6 | Santa Clara |
7 | Aloha |
8 | Qiryat Gat |
9 | Vietnam |
10 | Chandler |
11 | Costa Rica |
12 | Rio Rancho |
13 | Jerusalem |
14 | Kulim |
15 | Penang |
16 | Pudong |
17 | Dalian |
4.4. SDD Endpoints
Refer to the User Guide for how to create, submit and complete SDDs in the LSPx application.
All SDDs for all Sites and Companies
New APIs for the SDDs are now available in UAT and Production, containing all the SDDs from FCEConnect. You can use the following URL to GET SDD data for all companies on all sites:
- PRODUCTION api_url = "https://fcelspx.intel.com/designhub/api/FormsAPI/GetSDDsList?siteId=1&skip=10&take=100&companyName=DPS”
- UAT api_url = "https://fcelspx-uat.intel.com/designhub/api/FormsAPI/GetSDDsList?siteId=1&skip=10&take=100&companyName=DPS”
By default, this endpoint retrieves all SDDs if no filters or pagination parameters are provided, which may take some time. However, the API supports the following optional parameters:
- SiteId: Set it to 1 to get virtual factory SDDs.
- Skip: Specifies the number of records to skip.
- Take: Specifies the number of records to retrieve.
- CompanyName: GETs all records for a specific Company.
If both Skip and Take parameters are used, the data will be paginated accordingly. If you don't want to use Skip and Take parameters, remove &skip=10&take=100 from the URL.
If siteId parameter is used, all SDDs data for that site will be retrived. If you don't want to use SiteId parameter, remove siteId=1& from the URL. Refer the below table for the site Id's for each site.
If CompanyName parameter is used, all SDDs data for that company will be retrived. If you don't want to use Company Name parameter, remove &companyName=DPS from the URL.
If both SiteID and CompanyName parameters are used, all SDDs data for that company and for that specific site will be retrived. In the URL replace the company and siteId to suit your needs. Using the example above, change “DPS” to “Jacobs”. Change "2" to your siteid as per the table given below.
If you don't want to use SiteID and Company Name parameters, remove siteId=1& and &companyName=DPS from the URL. If you don't want to use any parameters, remove ?siteId=1&skip=10&take=100&companyName=DPS from the URL.
Site Id | Site Name |
---|---|
1 | Virtual Factory |
5. Example Request
Follow the instructions below to connect to the APIs using PowerBI or Excel:
5.1. Connecting via PowerBI
To connect to the API via PowerBI, follow these steps:
- Download the sample PowerBI file, modify the parameters, and follow the Steps from number 3.
- Alternatively, you can create your report from the beginning by copying and pasting the code in number 8.
- Open PowerBI on your desktop.
- Launch the Power Query Editor [Transform Data > Get Data > Launch Power Query Editor]
- Click on Enter Data
- Create a table with random data.
- Write click on the query and go to Advanced Editor.
- Replace the code with the Power Query code below:
Power Query for PowerBI
let
// Variables for token acquisition
token_url = "https://login.microsoftonline.com/46c98d88-e344-4ed4-8496-4ed7712e255d/oauth2/v2.0/token",
client_id = "d2211220-dfc4-4c54-9544-44701c707ae0",
client_secret = "qBt8Q~Ro1xGwa82OWWH0jFRimcn1TtWbzzYVJcIw",
scope = "api://lspxscopes/.default",
token_body = "grant_type=client_credentials&client_id=" & client_id & "&client_secret=" & client_secret & "&scope=" & Uri.EscapeDataString(scope),
// Obtain the token
TokenResponse = Web.Contents(token_url,
[
Content = Text.ToBinary(token_body),
Headers=[#"Content-Type"="application/x-www-form-urlencoded", #"Accept"="application/json"]
]),
// Parse the token response
AccessTokenRecord = Json.Document(TokenResponse),
AccessToken = AccessTokenRecord[access_token],
// API Call with the token
api_url_base = "https://fcelspx.intel.com/designhub/api/Issue/GetIssueRodList",
queryParams = "?siteName=Ireland&skip=10&take=100&companyName=DPS",
FullApiUrl = api_url_base & queryParams,
ApiHeaders = [Authorization="Bearer " & AccessToken, Accept="application/json"],
ApiResponse = Web.Contents(FullApiUrl, [Headers=ApiHeaders]),
// Parse the JSON response
ParsedJson = Json.Document(ApiResponse),
// Parse the JSON response
list = ParsedJson[list],
#"Converted to Table" = Table.FromList(list, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"issueId", "summary", "deparment", "problemStatement", "proposedSolution", "solution", "watchers", "updatedDate", "createdDate", "impact3dDetailing", "gitCategory", "impactedPocsCount", "initiatorContactNumber", "issueTypeName", "siteName", "siteCode", "siteId", "issuekey", "entityCodeLife", "project", "ceid", "fa", "rodType", "discipline", "aeDesignLead", "aeFirm", "statusName", "assignedToEmail", "assignedToUser", "issueUpdatedBy", "reporterEmail", "assignedToCompany", "reporterCompany", "isActive", "isInstruction", "aeFirmCompany", "assignedCompany", "issueKeyString", "impactedTools", "tradeCompany", "dueDate", "lastResponseDate", "dayslastResponse", "daysOpen", "bay", "facilityName", "closeddate", "ac", "pm", "reportedBy", "assigneeReporter", "processName", "attachments"}, {"Column1.issueId", "Column1.summary", "Column1.deparment", "Column1.problemStatement", "Column1.proposedSolution", "Column1.solution", "Column1.watchers", "Column1.updatedDate", "Column1.createdDate", "Column1.impact3dDetailing", "Column1.gitCategory", "Column1.impactedPocsCount", "Column1.initiatorContactNumber", "Column1.issueTypeName", "Column1.siteName", "Column1.siteCode", "Column1.siteId", "Column1.issuekey", "Column1.entityCodeLife", "Column1.project", "Column1.ceid", "Column1.fa", "Column1.rodType", "Column1.discipline", "Column1.aeDesignLead", "Column1.aeFirm", "Column1.statusName", "Column1.assignedToEmail", "Column1.assignedToUser", "Column1.issueUpdatedBy", "Column1.reporterEmail", "Column1.assignedToCompany", "Column1.reporterCompany", "Column1.isActive", "Column1.isInstruction", "Column1.aeFirmCompany", "Column1.assignedCompany", "Column1.issueKeyString", "Column1.impactedTools", "Column1.tradeCompany", "Column1.dueDate", "Column1.lastResponseDate", "Column1.dayslastResponse", "Column1.daysOpen", "Column1.bay", "Column1.facilityName", "Column1.closeddate", "Column1.ac", "Column1.pm", "Column1.reportedBy", "Column1.assigneeReporter", "Column1.processName", "Column1.attachments"})
in
#"Expanded Column1"
5.2. Connecting via Excel
To connect to the API via Excel, follow these steps:
- Open Excel on your desktop
- Launch the Power Query Editor [Data > Get Data > Launch Power Query Editor]
- Load the sample Excel file
- Go to Advanced Editor
- Create a table with random data
- Write click on the query and go to Advanced Editor
- Replace the code with the Power Query code below:
Power Query for Excel
let
// Variables for token acquisition
token_url = "https://login.microsoftonline.com/46c98d88-e344-4ed4-8496-4ed7712e255d/oauth2/v2.0/token",
client_id = "d2211220-dfc4-4c54-9544-44701c707ae0",
client_secret = "qBt8Q~Ro1xGwa82OWWH0jFRimcn1TtWbzzYVJcIw",
scope = "api://lspxscopes/.default",
token_body = "grant_type=client_credentials&client_id=" & client_id & "&client_secret=" & client_secret & "&scope=" & Uri.EscapeDataString(scope),
// Obtain the token
TokenResponse = Web.Contents(token_url,
[
Content = Text.ToBinary(token_body),
Headers=[#"Content-Type"="application/x-www-form-urlencoded", #"Accept"="application/json"]
]),
// Parse the token response
AccessTokenRecord = Json.Document(TokenResponse),
AccessToken = AccessTokenRecord[access_token],
// API Call with the token
api_url_base = "https://fcelspx.intel.com/designhub/api/Issue/GetIssueRodList",
queryParams = "?siteName=Ireland&skip=10&take=100&companyName=DPS",
FullApiUrl = api_url_base & queryParams,
ApiHeaders = [Authorization="Bearer " & AccessToken, Accept="application/json"],
ApiResponse = Web.Contents(FullApiUrl, [Headers=ApiHeaders]),
// Parse the JSON response
ParsedJson = Json.Document(ApiResponse),
// Parse the JSON response
list = ParsedJson[list],
#"Converted to Table" = Table.FromList(list, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"issueId", "summary", "deparment", "problemStatement", "proposedSolution", "solution", "watchers", "updatedDate", "createdDate", "impact3dDetailing", "gitCategory", "impactedPocsCount", "initiatorContactNumber", "issueTypeName", "siteName", "siteCode", "siteId", "issuekey", "entityCodeLife", "project", "ceid", "fa", "rodType", "discipline", "aeDesignLead", "aeFirm", "statusName", "assignedToEmail", "assignedToUser", "issueUpdatedBy", "reporterEmail", "assignedToCompany", "reporterCompany", "isActive", "isInstruction", "aeFirmCompany", "assignedCompany", "issueKeyString", "impactedTools", "tradeCompany", "dueDate", "lastResponseDate", "dayslastResponse", "daysOpen", "bay", "facilityName", "closeddate", "ac", "pm", "reportedBy", "assigneeReporter", "processName", "attachments"}, {"Column1.issueId", "Column1.summary", "Column1.deparment", "Column1.problemStatement", "Column1.proposedSolution", "Column1.solution", "Column1.watchers", "Column1.updatedDate", "Column1.createdDate", "Column1.impact3dDetailing", "Column1.gitCategory", "Column1.impactedPocsCount", "Column1.initiatorContactNumber", "Column1.issueTypeName", "Column1.siteName", "Column1.siteCode", "Column1.siteId", "Column1.issuekey", "Column1.entityCodeLife", "Column1.project", "Column1.ceid", "Column1.fa", "Column1.rodType", "Column1.discipline", "Column1.aeDesignLead", "Column1.aeFirm", "Column1.statusName", "Column1.assignedToEmail", "Column1.assignedToUser", "Column1.issueUpdatedBy", "Column1.reporterEmail", "Column1.assignedToCompany", "Column1.reporterCompany", "Column1.isActive", "Column1.isInstruction", "Column1.aeFirmCompany", "Column1.assignedCompany", "Column1.issueKeyString", "Column1.impactedTools", "Column1.tradeCompany", "Column1.dueDate", "Column1.lastResponseDate", "Column1.dayslastResponse", "Column1.daysOpen", "Column1.bay", "Column1.facilityName", "Column1.closeddate", "Column1.ac", "Column1.pm", "Column1.reportedBy", "Column1.assigneeReporter", "Column1.processName", "Column1.attachments"})
in
#"Expanded Column1"
6. Training Video
7. Support
If you have any questions or need further assistance, please contact the LSPx Support team.